iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0

對於學習任何程式語言來說,最基礎的就是他的型別,由於 TypeScript 是 JavaScript 的超集,所以幾乎 JavaScript 有支援的型別 TypeScript 都有,並且他還多了 Enum 這個型別可以使用。雖然在 TypeScript 中並沒有強制在宣告一個變數時一定要給予他型別,但是,如果我們有給予他型別,當我們不小心 assign (賦值) 錯誤到其他不同型別的變數時,TypeScript 是可以幫我們檢查出來的!光是這點就幫了我們非常大的忙了。

型別

關於基本型別 TypeScript 有以下這幾種:

number

number 在 TypeScript 包含了 整數, 浮點數, 正數, 負數, 以及 InfinityNan 都包含在裡面。

關於 number 另一個特別的用法是, 如果有一個很大的數字,我們可以用底線來區隔他,可以讓可讀性提高,例如:

let onMillion = 1_000_000 // 這裡的數值等於 1000000

string

string 在宣告時,可以使用單引號,也可以使用雙引號

let name: string = "Little Girl";
//or
let name: string = 'Little Girl';

boolean

布林值,不是 false, 就是 true.

let isPass1: boolean = true;
let isPass2: boolean = false;

void

如果有學過其他程式語言,相信一定會對 void 非常熟悉。沒錯,他就是沒有任何型別的意思。通常用在沒有回傳值得函式上面。
例如:

function printLog(message: string): void {
    console.log("This is a log for: " + message);
}

any

Any 代表的是任何型別都有可能,不過這樣一來就又回到 JavaScript 對於型別的處理方式了,所以,即便他真的有這個型別,但還是不建議使用。如果可以,儘量避免使用他。

null and undefine

在預設的情況下,undefinenull 是所有型別的子類別, 我們是可以把這兩給值 賦值(assign) 給其他型別的,例如 string

  • undefine: 對於任何被宣告的變數來說,如果他還沒有被初始話,他的值就會是 undefine
  • null: 恩!就是 null. 也就是這個變數沒有值得意思。但一般來說,如果能避免使用 null 就便免使用 null,因為有研究指出,null 其實常常給我們帶來許多的驚喜和災難。所以現在其他的程式語言都在嘗試避免他,例如 Kotlin 就沒有 null. (當然,如果你硬要給,也是可以啦), 而 Java 也有 Option 來取代 null.

never

never 這個型別就跟字面上的意思差不多,永遠不。可能是這個函式永遠不會回傳,或是這個函式永遠不會執行到(不然他就會丟出一個 Error)。

function boo(): never {
    while(true) {}
    // or
    throw new Error(....)
}

當然,如果你如果要宣告一個 never 的變數也是可以,let foo:never; , 但是你只能 assign never 能接受的值給他,例如永不回傳的函式或會丟出 error 的函式, 其他的值都會在 compile time(編譯時) 跳出錯誤訊息。


上一篇
第02天-經典起手式之 Hello World
下一篇
第04天-物件型別
系列文
從零開始進入 JavaScript & TypeScript 的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言